/*
 - Autor(es):
 -      Rommel A. Quintanilla C.
 -      Donia A. Ruelas A.
 -      Julio C. Ccahuana M.
 - Fecha: 16/05/07

 - Copyleft: (C) 2007
 - Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los
 - terminos de la Licencia Publica General de GNU segun es publicada por la Free
 - Software Foundation, de la version 2 de dicha Licencia.
 -
 - Este programa se distribuye con la esperanza de que sea util, pero SI NINGUNA
 - GARANTIA; tampoco las implicitas garantias de MERCANTILIDAD o ADECUACION A UN
 - PROPOSITO PARTICULAR. Consulte la GNU General Public License (GPL) para mas
 - detalles adjuntada a este programa. (Fichero: JuradoWeb-License.txt).
 -
 - Descripcion:
 - BeansDatos Envio Datos.
*/

package pe.edu.unap.jurado.BeansDatos;

import java.io.*;
import java.sql.*;
import java.util.*;
import pe.edu.unap.jurado.BeansDatos.*;
import pe.edu.unap.jurado.Beans.*;
import javax.xml.bind.*;

public class BeanEnvioDatos extends BeanDatos
{  
  public BeanEnvioDatos()
  throws SQLException
  {
   fichero = new String("BeanEnvioDatos.java");  
  }

  public String getUltimoEnvio()
  throws SQLException
  {
   instruccion=conexion.prepareStatement("SELECT MAX(idEnvio) FROM ENVIO;");
   ResultSet resultado=instruccion.executeQuery();
   resultado.next();
   if(resultado.getString(1)==null)
   {
    return "0";
   }
   else
    return resultado.getString(1);
  }
  
  public BeanEnvio getEnvio(String idEnvio)
  throws SQLException
  {
   instruccion=conexion.prepareStatement("SELECT * FROM ENVIO WHERE idEnvio = ?;");
   instruccion.setString(1,idEnvio);
   ResultSet resultado=instruccion.executeQuery();

   BeanEnvio envio=new BeanEnvio();
   resultado.next();
   envio.setIdEnvio(resultado.getString(1));
   envio.setIdUsuario(resultado.getString(2));
   envio.setIdProblema(resultado.getString(3));
   envio.setLengProg(resultado.getString(4));
   envio.setCodFuente(resultado.getString(5));
   envio.setVeredicto(resultado.getString(6));
   envio.setHoraEnvio(resultado.getString(7));
   envio.setFechaEnvio(resultado.getString(8));
   return envio;
 }

 public List getListaEnvio()
 throws SQLException
 {
  List lista=new ArrayList();
  instruccion=conexion.prepareStatement("SELECT * FROM ENVIO ORDER BY idEnvio DESC;");
  ResultSet resultado=instruccion.executeQuery();
	
  while(resultado.next())
  {
   BeanEnvio envio=new BeanEnvio();
   envio.setIdEnvio(resultado.getString(1));
   envio.setIdUsuario(resultado.getString(2));
   envio.setIdProblema(resultado.getString(3));
   envio.setLengProg(resultado.getString(4));
   envio.setCodFuente(resultado.getString(5));
   envio.setVeredicto(resultado.getString(6));
   envio.setHoraEnvio(resultado.getString(7));
   envio.setFechaEnvio(resultado.getString(8));
   lista.add(envio);
  }
  return lista;
 }
		
 public void registrarEnvio(BeanEnvio envio)
 throws SQLException
 {
  instruccion=conexion.prepareStatement("INSERT INTO ENVIO (idUsuario,idProblema,lengProg,codFuente,veredicto,horaEnvio,fechaEnvio) VALUES(?,?,?,?,?,CURTIME(),CURDATE());");
  instruccion.setString(1,envio.getIdUsuario());
  instruccion.setString(2,envio.getIdProblema());
  instruccion.setString(3,envio.getLengProg());
  instruccion.setString(4,envio.getCodFuente());
  instruccion.setString(5,envio.getVeredicto());
  instruccion.executeUpdate();
 }

 public void actualizarVeredicto(String idEnvio,String veredicto)
 throws SQLException
 {
  instruccion=conexion.prepareStatement("UPDATE ENVIO SET veredicto=? WHERE idEnvio = ?;");
  instruccion.setString(1,veredicto);
  instruccion.setString(2,idEnvio);
  instruccion.executeUpdate();
 }
	    
 protected void finalize()
 {
  try
  {
   instruccion.close();
   conexion.close();
  }
  catch(SQLException error)
  {
   error.printStackTrace();
  }
 }
}
